#演示捕获异常
#基本捕获语法
# try:
#     f=open(r"C:\\Users\GGBOY\\\Desktop\\billl.txt.bak","r",encoding="UTF-8")
# except:
#     print("出现异常改用w模式去打开")
#     f=open(r"C:\\Users\GGBOY\\\Desktop\\billl.txt.bak","w",encoding="UTF-8")
#
# #捕获多个异常
# try:
#     print(NAME)
#     # 1/0
# except NameError as e:
#     print("出现了变量未定义的异常")
#     print(e)
#未正确设置捕获异常类型，将无法捕获异常

#捕获所有异常
# try:
#     f=open(r"C:\\Users\GGBOY\\\Desktop\\billl.txt.bak","r",encoding="UTF-8")
# except Exception as e:
#     print("出现异常了")
#     f=open(r"C:\\Users\GGBOY\\\Desktop\\billl.txt.bak","w",encoding="UTF-8")
#
# else:
#     print("无异常")
# finally:
#     print("finally有无异常我都会执行")
#     f.close()
# #演示异常的传递性
#
# #定义一个出现异常的方法
# def func1():
#     print("func1开始执行")
#     num=1/0
#     print("func1结束执行")
# #定义一个无异常的方法，调用上面的方法
# def func2():
#     print("func2开始执行")
#     func1()
#     print("func2结束执行")
# #定义一个方法调用上面的方法
# def main():
#     try:
#         func2()
#     except Exception as e:
#         print(f"出现异常了，异常的信息是{e}")
#
# main()

#演示python的模块导入

#使用import导入time模块使用sleep功能（函数）

# import time
#
# time.sleep(5)

#使用from导入time的sleep功能（函数）
# from time import sleep
# print("ninhao")
# sleep(3)
# print("zhidaole")
#使用*导入time模块的全部功能
# from time import *   #*表示全部的意思
# print("ninhao")
# sleep(3)
# print("zhidaole")
#使用as给特定功能加上别名
# import time as t
# print("ninhao")
# t.sleep(3)
# print("zhidaole")
#演示自定义模块
#导入自定义模块的使用
# import my_model1
# s=tes(3,5)
# print(s)
#导入不同模块的同名功能
# from my_model1 import tes
# from my_model2 import tes
# tes(4,5)

#main变量
# def tes(x,y):
#     print(x+y)
#
# if __name__ == '__main__':
#
#     tes(3,4)
#all变量
# from my_model1 import *
# tes(3,5)
# tes2(8,9)
#演示python包
#创建一个包
#导入自定义的包中的模块并使用
# import my_package.my_module
# import my_package.my_module2
# my_package.my_module.info_print1()
# my_package.my_module2.info_print2()
# from my_package import my_module
# from my_package import my_module2
# my_package.my_module.info_print1()
# my_package.my_module2.info_print2()
# from my_package.my_module import info_print1
# from my_package.my_module2 import info_print2
# info_print1()
# info_print2()
# #通过__all__变量，控制import*
# from my_package import  *
# my_module.info_print1()
# my_module2  .info_print2()
#案例分析，演示异常，模块，包的综合练习
#创建my_utils包，在包内创建:str_utils.py和files_utils.py2个模块，并提供相应函数
import my_utils.file_utils
from my_utils import str_utils
print(my_utils.str_utils.str_reverse("长春理工大学"))
print(my_utils.str_utils.substr("长春理工大学",2,4))

my_utils.file_utils.append_to_file(r"C:\Users\GGBOY\Desktop\测试.txt","计算机科学与技术学院")
my_utils.file_utils.print_file_info(r"C:\Users\GGBOY\Desktop\测试.txt")
